﻿var selectedRowId = { Id: '-1' };
var urlVars;
var ischeckingName = false;

// This method defines column header in grid
function GetColumnNames() {
    return ['','Id', 'Ngày', 'Khách Hàng', 'Sản Phẩm', 'Đơn vị', 'Số Lượng', 'Đơn Giá', 'Thuế (%)', 'Chiết Khấu', 'Thành Tiền', 'Dùng hết', 'Tạo bởi'];
}

// This methods defines layout/sort/format/etc of column gird
function GetColumnModel() {
    return [{
        name: 'checkbox', index: 'checkbox', width: 20, align: "center", editable: true, edittype: "checkbox",
        formatter: 'checkbox', formatoptions: { disabled: false }, sortable: false
    },
        { name: 'Id', index: 'Id', width: 1, hidden: true },
        { name: 'SaleDate', index: 'SaleDate', width: 70, hidden: false },
        { name: 'CustomerName', index: 'CustomerName', width: 200, align: "left", sortable: true },
        { name: 'ProductName', index: 'ProductName', width: 150, align: "left", sortable: true },
        { name: 'Unit', index: 'Unit', width: 50, align: "left", sortable: true },
        { name: 'Quantity', index: 'Quantity', width: 60, align: "right", sortable: true },
          { name: 'UnitPrice', index: 'UnitPrice', width: 70, align: "right", sortable: true },
          { name: 'Tax', index: 'Tax', width: 70, align: "right", sortable: true },
          { name: 'Discount', index: 'Discount', width: 70, align: "right", sortable: true },
          { name: 'TotalValue', index: 'TotalValue', width: 150, align: "right", sortable: true },
          { name: 'ExpireUsedDate', index: 'ExpireUsedDate', width: 150, align: "left", sortable: true },
           { name: 'CreatedBy', index: 'CreatedBy', width: 100, align: "left", sortable: true },
    ];

}


$(document).ready(function () {
    GetCurrentLoginUser(function (data) {
        SetupGrid('#list', "/Sale/GetSaleListForBuildingGrid", GetColumnNames, GetColumnModel, '#listPager',
        'Name', 'text', 'asc', selectedRowId, GetPostData($("#list")), 360, 893, grid_LoadCompleted);
        $("#list").jqGrid('setGridParam', { datatype: 'json' });

    });

    registerEventHandles();
    formatDatePickers();

    function GetPostData(list) {
        //var abc = $("#cboProduct option:selected").val();
        //alert(abc);
        return {
            sortName: function () { return $(list).jqGrid('getGridParam', 'sortname'); },
            sortOrder: function () {
                return ($(list).jqGrid('getGridParam', 'sortorder'));
            },
            rowId: selectedRowId.Id,
            fromDate: function () { return $("#txtFromDate").val() },
            toDate: function () { return $("#txtToDate").val() },
            customerPhone: function () { return $("#txtCustomerPhone").val(); },
            productId: function () { return $("#cboProduct option:selected").val(); },
            categoryId: -1
        };
    }

    function formatDatePickers() {
        $(function () {
            $(".date-format").datepicker({
                changeMonth: true,
                changeYear: true
            });
        });
    }

});

function onSearch() {
    $.ajax({
        url: "/Sale/GetSaleListForBuildingGrid",
        data: GetPostData($("#list")),
        dataType: "json",
        type: "get",
        asyn: false,
        success: function (data) {
            $.unblockUI();
            $('#list').trigger('reloadGrid');
        },
        error: function (err) {
            $.unblockUI();
            //HandleError(err, "Error when searching Customer Name.", "");
            alert('Error occurred when searching');
        }
    });
    $("#list").jqGrid('setGridParam', { datatype: 'json' });
}
function grid_LoadCompleted() {
    handleCheckbox();
    handleControls(0);
    getSummaryInfo();
}

function getSummaryInfo() {
    $.ajax({
        url: "/Sale/GetSummaryInfo",
        data: {},
        contentType: 'application/json',
        dataType: "json",
        type: "get",
        success: function (data) {
            $("#spTotalValue").text(data.TotalSaleValue);
            $("#spExpiredDate").text(data.EstimateExpiredDate);
            $.unblockUI();
        },
        error: function (data) {
            alert("Yêu cầu đăng nhập lại");
            $.unblockUI();
        }
    });
}
function handleCheckbox() {
    $("#list input[type='checkbox']").change(function () {
        var selectedItems = getSelectedRows();
        handleControls(selectedItems.length);
    });


}

function handleControls(itemSelectedCount) {
    if (itemSelectedCount > 0) {
        $("#btnDel").removeAttr("disabled");
    }
    else {
        $("#btnDel").attr("disabled", true);
    }
    if (itemSelectedCount != 1) {
        $("#btnActivate").attr("disabled", true);
    }
    else {
        $("#btnActivate").removeAttr("disabled");
        var element = $("#list input[type='checkbox']:checked").parent().parent()
       .find("td[aria-describedby='list_Active']").first().text();
        if (element == "Đang hoạt động") {
            $("#btnActivate").text("Tạm ngưng hoạt động");
        }
        else {
            $("#btnActivate").text("Khôi phục hoạt động");
        }
    }

}

function getSelectedRows() {
    var elements = $("#list input[type='checkbox']:checked").parent().parent()
        .find("td[aria-describedby='list_Id']");

    var selectedIds = [];

    elements.each(function (e) {
        var id = $(this).text();
        selectedIds.push(id);
    });
    return selectedIds;
}

function newUser() {
    GetCurrentLoginUser(function (data) {
        if (!data || !data.Username || data.Username === '')
            window.location.href = '/User/Login';
        if (!data.IsAdmin) {
            window.location.href = '/User/Login';
        }
        $.blockUI();
        $.ajax({
            url: "/User/New",
            data: {},
            contentType: 'text/html',
            dataType: "html",
            type: "get",
            success: function (data) {
                $("#editWindow .modal-body").html(data);
                $('#editWindow .modal-title').html("Thêm User");
                $('#editWindow').modal({ backdrop: false });

                $("#editWindow .modal-dialog").css({ width: 500 });

                $.unblockUI();
            },
            error: function (data) {
                alert("Yêu cầu đăng nhập lại");
                $.unblockUI();
            }
        });

    });
}

function registerEventHandles() {
    //$("#btnEdit").click(function () {
    //    editCustomer();
    //    function editCustomer() {
    //        var selectedItems = getSelectedRows();
    //        if (selectedItems.length == 0)
    //            return;
    //        var ajaxUrl = "/User/Edit/" + selectedItems[0];

    //        GetCurrentLoginUser(function (data) {
    //            if (!data || !data.Username || data.Username === '')
    //                window.location.href = '/User/Login';

    //            $.blockUI();
    //            $.ajax({
    //                url: ajaxUrl,
    //                data: {},
    //                contentType: 'text/html',
    //                dataType: "html",
    //                type: "get",
    //                success: function (data) {
    //                    $("#editWindow .modal-body").html(data);
    //                    $('#editWindow .modal-title').html("Cập nhật User");
    //                    $('#editWindow').modal({ backdrop: false });
    //                    $("#editWindow .modal-dialog").css({ width: 500 });
    //                    $.unblockUI();
    //                },
    //                error: function (data) {
    //                    alert("Yêu cầu đăng nhập lại");
    //                    $.unblockUI();
    //                }
    //            });

    //        });
    //    }
    //});

    $("#btnDel").click(function () {
        var selectedItems = getSelectedRows();
        if (selectedItems.length == 0) return;
        $("#dialog-confirm").dialog({
            resizable: false,
            height: 160,
            modal: true,
            buttons: {
                "Xóa đi": function () {
                    DoDelete();
                    $(this).dialog("close");
                },
                "Khoan đã": function () {
                    $(this).dialog("close");
                }
            }
        });
        function DoDelete() {
            $.blockUI();
            $.ajax({
                url: "/Sale/Delete",
                data: JSON.stringify({ deletedIds: selectedItems }),
                contentType: 'application/json',
                dataType: "json",
                type: "POST",
                success: function (data) {
                    $.unblockUI();
                    $("#list").jqGrid('setGridParam', { datatype: 'json' });
                    $('#list').trigger('reloadGrid');
                    showMessage("#alertbox", data.Message, !data.Success);
                    //if (data.Success) {
                    //    showMessage("#alertbox", "Đã xóa User");
                    //}
                    //else {
                    //    showMessage("#alertbox", "Gặp lỗi khi xóa User", true);
                    //}
                },
                error: function (err) {
                    $.unblockUI();
                    showMessage("#alertbox", "Không thể xóa User!", true);
                }
            });
        }
    });

    $("#btnActivate").click(function () {
        var activate = $(this).text() != "Tạm ngưng hoạt động";
        var selectedItems = getSelectedRows();

        $.ajax({
            url: "/User/ActivateOrDeactivateUser?username=" + selectedItems[0] + "&activate=" + activate,
            data: {},
            contentType: 'application/json',
            dataType: "json",
            type: "POST",
            success: function (data) {
                $.unblockUI();
                $("#list").jqGrid('setGridParam', { datatype: 'json' });
                $('#list').trigger('reloadGrid');

                showMessage("#alertbox", data.Message, !data.Success);

            },
            error: function (err) {
                $.unblockUI();
                showMessage("#alertbox", "Không thể thực hiện thao tác này", true);
            }
        });
    });
}

function validateEmail(email) {
    var re = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    return re.test(email);
}

